/**
 * Класс, описывающий структуру Cookie
 */
export default class DtoCookie {
    /** @type {string} */
    domain

    /** @type {string} */
    expires

    /** @type {string} */
    name

    /** @type {string} */
    path

    /** @type {string} */
    value

    /** @type {boolean} */
    httpOnly


    /** @type {boolean} */
    secure

    constructor(obj) {
        this.domain = obj?.domain !== undefined ? obj.domain : null
        this.expires = obj?.expires !== undefined ? obj.expires : null
        this.name = obj?.name !== undefined ? obj.name : null
        this.path = obj?.path !== undefined ? obj.path : null
        this.value = obj?.value !== undefined ? obj.value : null
        this.httpOnly = obj?.httpOnly !== undefined ? obj.httpOnly : null
        this.secure = obj?.secure !== undefined ? obj.secure : null
    }

    /**
     * Создать экхемпляр класса из объекта, схожего по структуре с элементом класса DtoCookie
     * @param {object} obj 
     */
    static BuildFromObj(obj) {
        return new DtoCookie(obj)
    }

    /** @type {boolean} */
    getDomain() {
        return this.domain
    }

    getExpires() {
        return this.expires
    }

    getName() {
        return this.name
    }

    getPath() {
        return this.path
    }

    getvalue() {
        return this.value
    }

    getHttpOnly() {
        return this.httpOnly
    }

    getSecure() {
        return this.secure
    }
}